package model

type Cart struct { // Cart 购物车结构体
	CartID      string      // 购物车ID，通过UUID生成
	CartItems   []*CartItem // 购物车中所有的购物项，放到切片中
	TotalCount  int64       // 购物车中商品的总数量，通过计算得到
	TotalAmount float64     // 购物车中商品的总金额，通过计算得到
	UserID      int         // 当前购物车所属的用户，外键关联user表
}

func (cart *Cart) GetTotalCount() int64 { // 获取购物车中商品的总数量
	var totalCount int64
	for _, cartItem := range cart.CartItems { // 遍历购物车中购物项切片
		totalCount += cartItem.Count
	}
	return totalCount
}

func (cart *Cart) GetTotalAmount() float64 {
	var totalAmount float64
	for _, cartItem := range cart.CartItems {
		totalAmount += cartItem.GetAmount()
	}
	return totalAmount
}
